package buckets.strategies;

import java.util.List;

import buckets.core.BucketState;

/**
 * General umbrella interface for all bucket filling problem strategies.
 *  
 * @author vasek
 *
 */
public interface BucketFillingProblemStrategy extends Runnable {
	
	/**
	 * Get list of configurations (transformations/operations) that brings original
	 * bucket states to target states.
	 * 
	 * @return list of configurations from start to target configuration.
	 */
	List<BucketState> getResultPath();
	
	/**
	 * Get the number of states that had to be passed until result was obtained.
	 * 
	 * @return number of tested states
	 */
	int getNumberOfPassedStates();

}
